import axios from "axios";
import { ElMessage } from "element-plus";
// import store from '../store'
export const http = axios.create({
    baseURL: import.meta.env.VITE_BASE_API,
    // baseURL: "http://192.168.9.100:8000",
    // baseURL: "http://localtest.sxfarmer.com:8886",
    // withCredentials: true,
    headers: {
        "X-Requested-With": "XMLHttpRequest",
    },
});
/**
 * 请求拦截器，
 */
http.interceptors.request.use(
    (config) => {
        // 请求携带token
        // const token = sessionStorage.getItem('token')
        // if (token != '' && token != null) {
        config.headers["Authorization"] = "N2I0MDM1YjBmNjYwNGEyMWJiYTA0MjExYzJmMjg2NWMxNzMxOTEzMzYzNjE0MA==";
        // }
        // 传入电话和验证码

        // const urlData = JSON.parse(sessionStorage.getItem("urlData"));
        // if (urlData) {
        //     config.headers["phone"] = urlData.phone;
        //     config.headers["verificationCode"] = urlData.verificationCode;
        // }
        return config;
    },
    (error) => {
        // do something with request error
        return Promise.reject(error);
    }
);

/**
 * 返回拦截器，
 */
http.interceptors.response.use(
    (response) => {
        const res = response.data;
        // console.log(res);
        if (!res.success) {
            // if (res.message) {
            //     if (res.message.includes("成功")) {
            //         ElMessage.success(res.message);
            //     } else {
            //         ElMessage.error(res.message);
            //     }
            // } else {
            //     ElMessage.error(res.msg);
            // }
            // errorHandle(res.code, res.message)
            return Promise.reject(res);
        }
        // return Promise.reject(res)
        return res;
    },
    (error) => {
        //超时处理
        // console.log(error)
        // if(error.response.status >= 400){
        // 	return
        // }
        // if (String(error).indexOf('timeout') != -1) {
        // 	// Message.error('请求超时!')
        // 	Message.warning('当前网络状态欠佳!')
        // 	// dataLoading = Loading.service({
        // 	// 		 text: '正在加载中',
        // 	// 		 background: 'rgba(0,0,0,0.4)'
        // 	// })
        // 	return
        // }
        if (String(error).indexOf("Network") != -1) {
            ElMessage.error("网络错误!");
            // ElMessage.warning("当前网络状态欠佳!");
            return;
        }
        // console.log('错误')
        // console.log(error) // for debug
        // console.log(error.response.data) // for debug
        // errorHandle(error.response.data.status, error.response.data.message)
        return Promise.reject(error.response);
    }
);

//错误处理
const errorHandle = (status: number, other: any) => {
    // 状态码判断
    /**
     * @param {Object} status
     * 状态码和后台约定，进行相应操作
     * 请求成功	200
     * 请求失败	400
     * 内部错误	500
     * 未授权	401
     * 不合法的参数	40035
     * 请求超时	408
     */
    switch (status) {
        case 400:
            // 401: 未登录状态，跳转登录页
            ElMessage.error(other);
            break;
        case 401:
            ElMessage.error(other);
            break;
        case 500:
            ElMessage.error("内部服务器错误");
            break;
        case 404:
            ElMessage.error(other);
            break;
        case 408:
            ElMessage.error(other);
            break;
        default:
            console.log(other);
    }
};
